Displaying Key Differentiators Based On Standard Deviations Within A Distance Metric

ABSTRACT

Systems and methods are provided to enable viewing and computation of differential data for an item or item subset when compared with other items or subsets. A score may be determined for an item or subset where standard deviations and distance metrics are computed to determine differentiators. In one aspect, a system for comparing data items is provided. The system includes a weighting component to determine a score for an item or subset of items. A differentiator component determines a comparison metric for the item or subset of items based in part on a distance metric to at least one other item or subset of items. A user interface can be provided to display the comparison metrics.

BACKGROUND

The Internet has become increasingly popular technology for productpurchases (E-commerce) and products researching. Typically, users of theInternet, prior to purchasing a product either online or through atraditional vendor, will research the product using various searchtools. Internet users may utilize search tools for a variety of reasons.For example, to research the attributes of a particular product,locations of where to purchase the particular product, or alternativeproducts that have the same attributes as the focal product.

In one example, a user purchasing a car may first research the car onthe Internet, where the user may have a particular car in mind andsimply desire to determine the best price or the best location of whereto purchase the car. However, the user may have a particular car inmind, but desire to view alternative cars having similar attributes asthe focal car or having different attributes than the focal car.Researching products, such as a car, having many decision points orcriteria, may be a difficult and time-consuming process. In the exampleof a car, various criteria include, but are not limited to, discretecriteria such as seating capacity, number of doors, average miles pergallon (MPG), manufacturer's specified retail price (MSRP), and curbweight, for example. Further complicating the research and decisionprocess are various criteria that are general in nature such asperformance, economy, comfort, and safety.

Current technology lacks the tools to quickly and efficiently enable apurchaser of a product to determine what product best fits the wants andneeds of the purchaser. It also would be desirable to have a tool thathelps the user determine which criteria are of most importance to themas well as determine the relative importance of each criteria within arespective data set. When deciding between items with many discreteattributes, it becomes necessary to group some into larger aggregatecriteria; for example aggregating front leg room, front head room,heated seats, and lumbar support into a “comfort” criteria for cars.Currently there is not an efficient way to call out differences betweenproducts or categories. For example, given differences in variousvehicle attributes, there are no current methods to determine which aremost significant.

SUMMARY

The following presents a simplified summary in order to provide a basicunderstanding of some aspects described herein. This summary is not anextensive overview nor is intended to identify key/critical elements orto delineate the scope of the various aspects described herein. Its solepurpose is to present some concepts in a simplified form as a prelude tothe more detailed description that is presented later.

Systems and methods are provided to determine and display differencesbetween items or categories based on standard deviations having adistance metric. In one aspect, weightings and scores are aggregated fora plurality of item features such as determining differences fordifferent aspects of a given product for example. From these weightings,distance calculations are performed to determine significant differencesor differentiators from a given users perspective. These differences aregenerally not simple numeric comparisons between features but calculatedto highlight significant or key differences between an item under searchand other items in an associated class or category. For example, in acar category comparison, a one-inch wheel-base, that is computed andweighted from a difference point of view is not the same computation ascomputing the difference in cars having a one-inch difference in headroom.

In one particular aspect, calculation of a “z-score” for an attributeprovides a base for determining differences between items. Keydifferentiators for items are determined by contrasting each item orgroup of an items' z-scores for each attribute and highlighting theattributes with a greatest positive (good) and negative (bad)differences. These attributes become presentable as “keydifferentiators” such as via a graphical user interface for example. Inother aspects, algorithmic methods are provided to allow for suchcomparison and ordering. For example, it can be shown or displayed how aparticular car stands out against a single or category of competitors.Thus, differentiators provide a mechanism to determine across multipleattributes (e.g., horsepower, price, fuel economy, and so forth), whichare most statistically relevant. Another aspect is that the user candefine individual criteria within the aggregate as well as theweightings within the aggregate. Also, the user can weigh the aggregateagainst all the other criteria in the larger comparison, if desired.

To the accomplishment of the foregoing and related ends, certainillustrative aspects are described herein in connection with thefollowing description and the annexed drawings. These aspects areindicative of various ways which can be practiced, all of which areintended to be covered herein. Other advantages and novel features maybecome apparent from the following detailed description when consideredin conjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic block diagram illustrating a data item comparisonsystem.

FIG. 2 is a flow diagram that illustrates a data item comparisonprocess.

FIG. 3 illustrates example item and/or item subset comparisons.

FIG. 4 illustrates an example client/server processing system and userinterface.

FIG. 5 illustrates example data files for item processing andcomparison.

FIG. 6 illustrates an example system for requesting and retrieving itemcomparison data.

FIG. 7 illustrates exemplary attributes used in determining therelevancy of a comparison product to a focal product.

FIG. 8 illustrates a method of comparing a focal vehicle to a comparisonvehicle.

FIG. 9 illustrates a process for standardizing attributes.

FIG. 10 illustrates a method for returning results in a search forcomparison vehicles having attributes that are substantially similar toa focal vehicle.

FIG. 11 is a schematic block diagram illustrating a suitable operatingenvironment.

FIG. 12 is a schematic block diagram of a sample-computing environment.

DETAILED DESCRIPTION

Systems and methods are provided to enable viewing and computation ofdifferential data for an item or item subset when compared with otheritems or subsets. A score may be determined for an item or subset wherestandard deviations and distance metrics are computed to determinedifferentiators. For example, a product having several productcategories may have displayed the most significant difference to someother product or category. In one aspect, a system for comparing dataitems is provided. The system includes a weighting component todetermine a score for an item or subset of items. A differentiatorcomponent determines a comparison metric for the item or subset of itemsbased in part on a distance metric to at least one other item or subsetof items. A user interface can be provided to display the comparisonmetrics.

As used in this application, the terms “component,” “system,”“differentiator,” and the like are intended to refer to acomputer-related entity, either hardware, a combination of hardware andsoftware, software, or software in execution. For example, a componentmay be, but is not limited to being, a process running on a processor, aprocessor, an object, an executable, a thread of execution, a program,and/or a computer. By way of illustration, both an application runningon a server and the server can be a component. One or more componentsmay reside within a process and/or thread of execution and a componentmay be localized on one computer and/or distributed between two or morecomputers. Also, these components can execute from various computerreadable media having various data structures stored thereon. Thecomponents may communicate via local and/or remote processes such as inaccordance with a signal having one or more data packets (e.g., datafrom one component interacting with another component in a local system,distributed system, and/or across a network such as the Internet withother systems via the signal).

Referring initially to FIG. 1, a data item comparison system 100 isillustrated. The system 100 includes a weighting component 110 thatdetermines scores for category or item data 120. Such data 120 caninclude substantially any type of data such as product data, marketingdata, location data, and substantially any type of category oridentifier that can be attached or associated with the data. Adifferentiator component 130 is employed to determine standarddeviations on the category or item data 120 and more particularlydetermine distance metrics between one item or subset of data 120 and atleast one item or subset of data. For instance, a product may have threebasic features associated with the product. Each feature can be weightedor scored by the weighting component 110 and then distances calculatedto other features via the differentiator component 130 to determine adifference between one feature and a group of features or between oneproduct and a subsequent product in this example. After differences aredetermined for the data 120, a user interface 140 can display itemdifferences and/or comparisons at 150.

In general, the system 100 determines and displays differences betweenitems or categories of data 120 based on standard deviations having adistance metric between such items or categories. In one aspect,weightings and scores are aggregated for a plurality of item featuressuch as determining differences for different aspects of a given productfor example. From these weightings, distance calculations are performedto determine significant differences or differentiators from a givenusers perspective.

In one particular aspect, calculation of a “z-score” for an attributeprovides a base for determining differences between items. Scoredeterminations are described in more detail below with respect to FIGS.9 and 10. Key differentiators for items are determined by contrastingeach item or group of an items' z-scores for each attribute andhighlighting the attributes with a greatest positive (good) and/ornegative (bad) differences at 150. These attributes become presentableas “key differentiators” such as via the graphical user interface 140for example. In other aspects, algorithmic methods are provided to allowfor comparison and ordering. For example, it can be shown or displayedat 150 how a particular car stands out against a single or category ofcompetitors. Thus, differentiators provide a mechanism to determineacross multiple attributes (e.g., horsepower, price, fuel economy, andso forth), which are most statistically relevant.

Another aspect is that the user can define individual criteria via theinterface 140 within the aggregate as well as the weightings within theaggregate. Also, the user can weigh the aggregate against all the othercriteria in the larger comparison via the interface 150, if desired.Other aspects allow data to be gathered and comparisons to be made viasupporting JavaScript (or other format) where such data can be placed ina script comparison file which is described in more detail below.Controls for the data and presentation can include a series of elementswith unique ID attributes that have their text values updated when an onChange event fires for a display drop down and/or category output (e.g.,button). When a selection drop down is changed at the user interface150, it can dynamically add the correct category data for the respectivedisplay 150, select a first category as a default, and then update therespective text areas as comparisons change.

Data for a product or category can originate from a set of files thatcan be created for each data model during a site build. The files cancontain sets of multi-dimensional arrays (e.g., one for each category ortrim) that includes the contrasted or differentiator values for thecategory, base category values, and/or other components of data.Multiple data files can help optimize page load time by reducing thesize of the files to be downloaded for respective categories andoffloading as much data as possible to files that typically need to bedownloaded once.

FIG. 2 illustrates an exemplary process 200 for determining itemdifferentials. While, for purposes of simplicity of explanation, theprocess is shown and described as a series or number of acts, it is tobe understood and appreciated that the subject processes are not limitedby the order of acts, as some acts may, in accordance with the subjectprocesses, occur in different orders and/or concurrently with other actsfrom that shown and described herein. For example, those skilled in theart will understand and appreciate that a methodology couldalternatively be represented as a series of interrelated states orevents, such as in a state diagram. Moreover, not all illustrated actsmay be required to implement a methodology in accordance with thesubject processes described herein.

Referring now to FIG. 2, an example process 200 is illustrated whereitem or category differentials are determined in order to facilitatedetermining differences between items or categories. At 210, a score isdetermined for one or more data items or item subsets. As will bedescribed in more detail below, such scoring can include determining a“z-score” for the respective items or item subsets. At 220, standarddeviations are applied to the z-scores at 210 in order to determinedistance metrics between items and/or item subsets. From such distancemetrics determined at 220, differentiator scores are determined at 230that define similarity between an item or a subset or dissimilaritybetween an item or subset. Such scores can have respective positive ornegative values to indicate similarity or dissimilarity. At 240, adatabase is queried for one or more differentiator scores pertaining toan item, item subset, category, or product. At 250, the querieddifferentiator data can drive an output display showing keydifferentiators of differences between an item and another item, betweenan item and a subset of items, or between item subsets. For example, ifcar data were compared between a class of cars, differentiator data mayhighlight that one car has significantly less gas mileage than othermembers of the class. Such difference could be reflected as a negativedesignation, for example. As can be appreciated, a plurality of suchcomputations and displays can be provided relating to substantially anytype of data or data subset comparison that highlights differences ordifferentiators between respective class members.

Referring briefly to FIG. 3, example comparison subsets 300 areillustrated to demonstrate possible types of data groupings that may bepossible to score and subsequently determine a respective distancemetric for the respective grouping. At 310 and 320, distance metrics canbe determined between a data item and another data item. For example, auser may desire to know how one car from a group of cars compares inhorsepower without regard to other data items associated with the cars.At 330 and 340, a distance metric is performed between one data item anda subset of data items. For instance, scores may be aggregated for asubset of items yet computed as a distance from the subset to one otheritem from another set or subset. At 350 and 360, distances can becalculated between subsets of data items, where a respective subset isscored along with at least one other subset, the scores for each subsetthen aggregated for the respective subsets, then a distance metriccalculated between the aggregated scores.

Turning to FIG. 4, a base system 400 is illustrated for generating andquerying differentiator data. The base components of the system 400include a user interface at 410 for requesting and displaying data, andclient and server components 420 for processing and transferringdifferentiator data from a database 430. In general, to retrieve thisdata, a request (e.g., XMLHTTPRequest) can be made to an ASPX page foreach category or competitor comparison being made on the page. As thedata is downloaded, that competitor's comparison “box” can be enabledvia the interface 410 and script can be employed make a new request forthe next competitor model. Eventually, the data is downloaded to theinterface 410 and the page will be active. For example, data fortrim-to-trim comparisons can be in a single de-normalized table that ispopulated by a build process. When an XMLHTTPRequest is made to the ASPXpage for data, for example, the page will call a stored procedure thatreturns a result set containing the comparisons for the two models(e.g., focal and competitor). This can be packaged into delimited textstring and returned to the client 420 for parsing and display at theinterface 410.

Splitting out the base comparison data into a separate file provides abase level of functionality if the XMLHTTPRequest cannot be processedand provides a rollback path. Another aspect includes populating thedata set into static script files and having the files downloaded fullyto the client 420, which may affect performance, but allow the page tocontinue to function.

It is noted that the user interface 410 can include a display having oneor more display objects (not shown) for manipulating data itemsincluding such aspects as configurable icons, buttons, sliders, inputboxes, selection options, menus, tabs and so forth having multipleconfigurable dimensions, shapes, colors, text, data and sounds tofacilitate operations with the user model and search components. Inaddition, the interface can also include a plurality of other inputs orcontrols for adjusting and configuring one or more data aspects. Thiscan include receiving user commands from a mouse, keyboard, speechinput, web site, remote web service and/or other device such as a cameraor video input to affect or modify operations of the interface 410.

FIG. 5 illustrates example data files 500 for processing differentiatordata. Before proceeding, it is noted that data examples provided in thissection pertain to cars but as noted above, substantially any type ofdata can be processed. At 510, an attribute script file can be provided.This file can include lookup/domain data for Decision Guide attributeswith the attribute names. This data can remain relatively static and canbe shared around the site to other systems. A possible example of thedata that would be in this file is:

att[0]=‘MSRP’;

att[1]=‘Total Cost of Ownership’;

att[2]=‘Model Warranty Basic’;

etc.

At 520, category values are provided. This file can include a list ofcategory names and IDs as well as the attribute values/averages for eachattribute in each category. This file is generally downloaded once, asthis data will not change from model to model and can be reused on otherpages around the site. An example of what this file may appear as:

cat[0]=‘Small Cars’;

cat[1]=‘Mid-sized Cars’;

cat[2]=‘Large Cars’;

etc.

catVals[0][0]=‘12,000’;

catVals[0][1]=‘170’;

catVals[0][2]=‘3’;

etc.

Where the first index position in the catVals array is the category IDand the second is the attribute ID.

At 530, a model file can be generated. In this case, a JavaScript filecan be generated for each model ID, named appropriately with the modelID (1001.js, for example), and placed in a folder on web servers. Thecontents of this file can be three arrays, indexed on trim id,containing the values for each category and for each attribute used tofill in “Basic” and “Standout” sections of a product or category. Inaddition, there can be a much smaller array defining the categories eachtrim is a member that will be used to dynamically render the category.Since this can be a little confusing, here is an example of a section ofthe model file with the different fields defined.

FIG. 6 illustrates a more detailed client and server model 600 foraccessing and generating differentiator data. As illustrated, a userrequest component 610 generates a competitor's page at 620 that issubmitted as an XML request to a server component 630 that queries datafrom a database 640. When the data is retrieved, the server component630 competitors page 620 to satisfy the user request component 610. Thefollowing describes one particular example implementation for the clientand server model 600, however it is to be appreciated that otherimplementations are possible.

Client side code can be a standard AJAX interface for processingJavaScript codes and that utilizes XMLHTTPRequest to make a request tothe server in client side (JavaScript) code. Initially, the page 620 canbe rendered using the base comparison data downloaded in a static, builtfile. When the page has downloaded, an XMLHTTPRequest can be made to theserver at 630 for each focal model to competitor model comparison. Aseach request completes, that comparison's drop down will be enabled.Multiple requests can be made as XMLHTTPRequest may not allow access tothe response stream until the response is completed. If, instead, asingle request with a single response containing all the data for thecomparison page was used it can result in the user waiting to use thepage until the entire data set had been downloaded and parsed, which maynot be desirable.

JavaScript (JS) for the XMLHTTPRequest usage and other global/libraryfunctions can be placed in a single JS file for use on other pages. Oneaspect is to create a library of functions that can be reused for otherAJAX implementations if desired. The response returned by the server 630can be a delimited text stream rather than XML to save on size. The textstream can be parsed on the client and converted into arrays. Changingthe focal trim or competitor trim drop downs displays can fire an onChange event that changes the display. All data not in the responsestream can be written to the page as JavaScript during the initialrender (trim names, model names, and so forth) or pulled from anattributes script file (attribute names, and so forth) or other includedJS files.

The response stream from the server at 630 should be a compact stringthat can be quickly parsed and split into a data set on the client. Eachresponse stream should encompass the data for a focal model tocompetitor model comparison, which implies it will have comparisonsbetween at least two data sets. The server side page that theXMLHTTPRequest will be posted to is responsible for making the call tothe database 640 and assembling the response stream. The page will takeat least two parameters (e.g., focal model ID and competitor model ID)and can use a stored procedure to fetch the data. The page can write theresult of the query (a formed response string) out to the responsestream where it can then be received by the client.

When a page first loads, a request queue can be created can be a list ofcompetitor model IDs, for example. The code that executes theXMLHTTPRequest iterates over the list, making each request and parsingthe response stream in turn. If the request was successful, that itemcan be popped off the queue but if it fails, it can remain in the queue.The code can loop back over the queue and attempt each failed requestagain if desired, again popping any successful requests off the queue.This can continue until either the queue is empty or a predeterminednumber of passes are made. If a request cannot be completed, an errormessage can be written to that model's area of the screen indicatingthat all data for the competitor could not be downloaded and thecomplete data is not available.

FIGS. 7-10 are provided to show some example data structures and z-scorecomputations from which the differentiators described above can becomputed. For ease of understanding, and not by way of limitation,various aspects will be explained in the context of a vehicle purchasebut substantially any item or category comparison can be achieved.Further, exemplary methods described in further detail in relation toFIGS. 10-11 utilize attributes pertaining to cars, which have aparticular taxonomy. The taxonomy of cars is year, make, model, andtrim. For example, but not by way of limitation, a 2005 Honda Accord EXV6 has a year of 2005, a make of Honda, a model of Accord, and a trim ofEX V6. Generally, there are a number of trims for each model. In anormal model year, there are approximately 300 models and approximately1,700 trims. Attributes associated with each trim are used to determinethe relevant results to return to the user, but, however, it is notuncommon for a particular trim to be missing attributes. In oneinstance, fuel economy data may be missing for about 20% of the trims.These may be termed data holes. One aspect for filling these data holesis as follows: use an average of the other trims for the specific modelyear, use an average for the vehicle family for the latest model yeardata that is available, or use an average for the category for the modelyear to which the trim belongs.

Since a particular model may comprise a number of trim sets, variousaspects may utilize a “wide-vector” analysis to expeditiously process apurchaser's search of comparison cars (or products). Wide-vectoranalysis comprises consolidating high and low values for each attributefor each trim set associated with a model. By way of example, but not byway of limitation, if a particular model includes 3 trims having MPGratings of 19 City 25 Hwy, 19 City 27 Hwy, and 17 City 22 Hwy, then thewide-vector may be min 17 max 27 MPG. If a purchaser's criteriaindicates a preference for a vehicle having a 30 MPG rating, theparticular model would not be utilized in returning relevant results tothe purchaser.

Referring now to FIG. 7, there is illustrated exemplary attributes usedin determining the relevancy of a comparison product to a focal product.As mentioned above, throughout this disclosure, for ease ofunderstanding, the various attributes and algorithms are described inrelation to purchasing a car but can be applied to other categories ordata items. Attributes 700 of FIG. 7 may comprise, but are not limitedto, quantitative attributes 712 which includes discrete attributes 714,and continuous attributes 716. Attributes 700 further include, but arenot limited to, aggregated attributes 710, and categorical attributes724. Categorical attributes 724 further include binary attributes 726,and other categorical attributes 728. Discrete attributes 714 compriseattributes such as seating capacity and number of doors on a car.Continuous attributes 716 comprise attributes such as MPG, MSRP, andcurb weight. Further, binary attributes 726 may be expressed as “True”or “False”. Other categorical attributes 728 may include bit maskedattributes (attributes belonging to one or more categories), andattributes belonging to a single category. Aggregate attributes 710 aregeneral in nature, such as, but not limited to, performance, fueleconomy, comfort, and safety. Aggregate attributes 710 comprise anamalgamation of one or more attributes that are either categorical orquantitative in nature. The aforementioned attributes are used topresent results 718 to a user

Turning now to FIG. 8, a method 800 is illustrated comparing a focalvehicle to a comparison vehicle. The method 800 comprises a preparationat 820. This prepares, for purposes of comparison, attributes related tovarious trim models of comparison products or vehicles. This will befurther described in relation to FIG. 9. At 822, methods are providedrelated to calculation of comparison values using attributes prepared at820. Finally, at 824, comparison results are rendered based oncalculations performed at 820 and 822.

Turning now to FIG. 9, a process 920 is illustrated. At 920A, trim setattributes relating to a variety of vehicles—which in later analysis maybe used either as focal or comparison vehicles—are retrieved from a datastore or data stores. At 920B, a determination is made as to whether aparticular attribute of a trim set is categorical or quantitative innature. Quantitative attributes may be, but are not limited to, discreteor continuous attributes. Categorical attributes, include, but are notlimited to, binary attributes, and other categorical attributes.Continuing with 920B, if a particular attribute of a trim set isquantitative in nature, a decision is made at a 920C as to whether theattribute requires transformation.

In order to standardize or normalize the various trim set attributes inpreparation method 920, an assumption is made that the attributes beingstandardized approximates a normal distribution (e.g., assumes the shapeof a bell curve). Some aspects assume attributes in a trim set are in anormal distribution, a positively skewed distribution, or a negativelyskewed distribution. In a normal distribution, a one unit difference hasthe same significance at any part of the distribution, in a positivelyskewed distribution, a one unit difference gains in significance thefurther to the lower end of the distribution, and in a negatively skeweddistribution, a difference of one unit gains in significance the furtherto the higher end of the distribution. Continuing with 920C, if theattributes comprising a particular trim set are not in a normaldistribution, then a Box-Cox transformation is utilized to approximatethe attributes in the particular trim set as a normal distribution. Inother words, the Box-Cox transformation normalizes the data. The Box-Coxtransformation is shown below in equation (1), with exemplary values oflambda given in Table 1.

$\begin{matrix}{{T\left( x_{i} \right)} = \frac{x_{i} - 1}{\lambda}} & (1)\end{matrix}$

TABLE 1 λ (lambda) Transformation 1.0 No transformation 0.5 Square roottransformation 0 Log transformation −1 Reciprocal Transformation

In equation (1), x_(i) is the data point and λ is the transformationparameter. A log-likelihood equation is used to determine the value of λthat provides values of the transformation of equation (1) which willnormalize the particular attributes in the trim set. The optimal λ valueis determined at 920E as shown in Table 1. At 920G, the Box-Coxtransformation is applied using the value of λ determined at 920E.

If no transformation is required at 920C, or a transformation is appliedat 920G, the attributes are standardized at 920I, 920 K, and 920L.Standardization may be useful for understanding the extent to which thedifference in each attribute contributes to an overall comparison scorebetween the focal vehicle and a comparison vehicle. A Z-score isutilized to standardize attributes relating to a trim set. At 920H, ifthe data is on a fixed/constructed scale, then a standard Z-score iscalculated for the data at 920I. A standard Z-score is utilized becausefixed/constructed data (e.g., reliability rating) generally does notcomprise “outliers.” Outliers are data points that skew the values ofthe mean and standard deviation. A standard Z-score is illustrated belowin Equation (2).

$\begin{matrix}{z_{x\; i} = \frac{x_{i} - \overset{\_}{x}}{s}} & (2)\end{matrix}$

-   -   Where x_(i) is the data point being standardized, x is the        arithmetic mean, and s is the standard deviation.

At 920J, if the attribute is continuous (e.g., curb weight), a medianabsolute deviation about the median (MAD) is utilized to account for theeffect of outliers. The MAD-based Z-score is illustrated below inequation 3. Where {tilde over (x)} is the median.

$\begin{matrix}{{z_{x\; i}^{''} = \frac{x_{i} - \overset{\sim}{x}}{MAD}},{{{where}\mspace{14mu} {MAD}} = {{{median}\left( {{x_{i} - \overset{\sim}{x}}} \right)} \times 1.4826}}} & (3)\end{matrix}$

If at 920J the data is not continuous, but is discreet data (e.g.,seating capacity) the standard deviation, s, of equation (2) can bereplaced with the average absolute deviation about the mean (AAD) asshown below in equation (4).

$\begin{matrix}{{z_{x\; i}^{\prime} = \frac{x_{i} - \overset{\_}{x}}{AAD}},{{{where}\mspace{14mu} {AAD}} = \frac{\sum\limits_{i = 1}^{n}{{x_{i} - \overset{\_}{x}}}}{n}}} & (4)\end{matrix}$

After standardizing the data points at 920I, 920K, and 920L, a datastore is created at 920M that comprises the standardized or normalizedattributes for each particular trim set. Referring back to 920B ofmethod 920, if the data points of a particular set of trim data arecategorical in nature, then method 920 continues at a 920D. At 920D, ifthe particular data is not binary, and belongs to multiple categories,then each attribute is converted to a bit mask having a category IDrepresented by a bit in the bit mask. The converted categoricalattributes, along with binary, and exclusive categorical data is storedin the created data store at 920M. Thus, method 920 results in thecreation of a data store 920M having standardized or normalized trim setattributes. The vehicle attributes may then be used to compare a focalvehicle to a comparison vehicle. At 920 P, if no data points are to beretrieved, method 920 ends.

Referring now to FIG. 10, there is illustrated a method 1000 forreturning relevant results in a search for comparison vehicles that aresubstantially similar to a focal vehicle when compared on anattribute-by-attribute basis. Method 1000 compares the focal vehicle toa set of comparison vehicle attributes and returns a score representinghow substantially similar a particular comparison vehicle in the set ofcomparison vehicles is to the focal vehicle. The vehicles are comparedon an attribute-by-attribute basis. Scores may, but are not limited tothe range of 0 to 1, with 1 representing an exact match and 0representing the greatest possible mismatch. At 1010, the focal carattributes are retrieved and attribute weighting are retrieved.attribute weightings may be given by the user, or may be defaultweightings. Attribute weightings given by the user may be using severalattributes ranging from safety to base MSRP price in a field.

At 1011, user and editorial weightings are combined. At 1012, totalquantitative and categorical weightings are calculated. At 1013,comparison vehicle attributes are retrieved in an iterative/per vehiclebasis. At 1014, each individual attribute of the current comparisonvehicle is iteratively retrieved for contrasting with the same attributeof the focal vehicle. At 1015, a determination is made as to whether anattribute in a trim set is quantitative. If the attribute isquantitative, at 1016, a weighted distance is calculated. Weighteddistances may be calculated using one of the two example metrics givenbelow in equations (5) and (6).

$\begin{matrix}{d_{x\; y} = {\sum\limits_{i = 1}^{n}{w_{i}{{x_{i} - y_{i}}}}}} & (5) \\{d_{x\; y} = \sqrt{\sum\limits_{i = 1}^{n}\left( {w_{i}\left( {x_{i} - y_{i}} \right)} \right)^{2}}} & (6)\end{matrix}$

In equations (5) and (6), w_(i) is the weight assigned to the i^(th)attribute, x_(i) is the value of the i^(th) attribute of the focalvehicle, and y_(i) is the value of the i^(th) attribute of thecomparison vehicle. W_(i) may represent any combination of weightsassigned by the user or editorially assigned. Equation (5) treats thedistance between two vehicles as if moving along each dimension in aN-dimensional universe to move from one vehicle to the next. Equation(6) treats the distance between two vehicles as if it were a straightline. At 1018, the weighted distances computed at 1016 are added to thetotal quantitative weighted distances.

At 1023, a determination is made as to whether there is a match betweenthe focal vehicle and the associated attribute of the comparisonvehicle. If yes, at 1022, the attribute weighting is added to the totalcategorical weighted distance. After completing the iterations of 1014,at 1024 and 1020, the quantitative and categorical scores are determinedby, respectively, equations (7) and (8) below.

$\begin{matrix}{{sim}_{x\; y} = {1 - \frac{d_{x\; y}}{\max {d}}}} & (7) \\{{sim}_{x\; y} = \frac{\sum\limits_{i = 1}^{n}{w_{i}{sum}_{i}}}{\sum\limits_{i = 1}^{n}w_{i}}} & (8)\end{matrix}$

In equation (7), max|d| is computed by calculating the distance betweentwo concept vehicles: one having the largest values for eachquantitative attribute in the trim set, and the other having thesmallest values for each quantitative attribute in the trim set. Thesame weighting used in calculating d_(xy) should be utilized whencalculating max|d|. This produces a similarity score in the range of 0to 1. In equation (8), sum_(i) equals 1 if there is a match on thei^(th) attribute or 0 if there is not a match. W_(i) is the editorial oruser weightings. At a 1026, a score for both quantitative andcategorical attributes for a given comparison vehicle is determinedusing equation (9) below.

$\begin{matrix}{{sim}_{x\; y} = \frac{\left( {{sim}_{c{({x\; y})}} \times {\sum\limits_{i = 1}^{n_{c}}w_{c\; i}}} \right) + \left( {{sim}_{q{({x\; y})}} \times {\sum\limits_{j = 1}^{n_{q}}w_{q\; j}}} \right)}{{\sum\limits_{i = 1}^{n_{c}}w_{c\; i}} + {\sum\limits_{j = 1}^{n_{q}}w_{q\; j}}}} & (9)\end{matrix}$

In equation (9), n_(c) is the total number of categorical attributes,and n_(q) is the number of quantitative attributes. After completing theiterations for 1013, at 1028, the most relevant results in the set ofcomparison vehicles are returned to the user.

In order to provide a context for the various aspects of the disclosedsubject matter, FIGS. 11 and 12 as well as the following discussion areintended to provide a brief, general description of a suitableenvironment in which the various aspects of the disclosed subject mattermay be implemented. While the subject matter has been described above inthe general context of computer-executable instructions of a computerprogram that runs on a computer and/or computers, those skilled in theart will recognize that the invention also may be implemented incombination with other program modules. Generally, program modulesinclude routines, programs, components, data structures, etc. thatperforms particular tasks and/or implements particular abstract datatypes. Moreover, those skilled in the art will appreciate that theinventive methods may be practiced with other computer systemconfigurations, including single-processor or multiprocessor computersystems, mini-computing devices, mainframe computers, as well aspersonal computers, hand-held computing devices (e.g., personal digitalassistant (PDA), phone, watch . . . ), microprocessor-based orprogrammable consumer or industrial electronics, and the like. Theillustrated aspects may also be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. However, some, if not allaspects of the invention can be practiced on stand-alone computers. In adistributed computing environment, program modules may be located inboth local and remote memory storage devices.

With reference to FIG. 11, an exemplary environment 1110 forimplementing various aspects described herein includes a computer 1112.The computer 1112 includes a processing unit 1114, a system memory 1116,and a system bus 1118. The system bus 1118 couples system componentsincluding, but not limited to, the system memory 1116 to the processingunit 1114. The processing unit 1114 can be any of various availableprocessors. Dual microprocessors and other multiprocessor architecturesalso can be employed as the processing unit 1114.

The system bus 1118 can be any of several types of bus structure(s)including the memory bus or memory controller, a peripheral bus orexternal bus, and/or a local bus using any variety of available busarchitectures including, but not limited to, 11-bit bus, IndustrialStandard Architecture (ISA), Micro-Channel Architecture (MSA), ExtendedISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB),Peripheral Component Interconnect (PCI), Universal Serial Bus (USB),Advanced Graphics Port (AGP), Personal Computer Memory CardInternational Association bus (PCMCIA), and Small Computer SystemsInterface (SCSI).

The system memory 1116 includes volatile memory 1120 and nonvolatilememory 1122. The basic input/output system (BIOS), containing the basicroutines to transfer information between elements within the computer1112, such as during start-up, is stored in nonvolatile memory 1122. Byway of illustration, and not limitation, nonvolatile memory 1122 caninclude read only memory (ROM), programmable ROM (PROM), electricallyprogrammable ROM (EPROM), electrically erasable ROM (EEPROM), or flashmemory. Volatile memory 1120 includes random access memory (RAM), whichacts as external cache memory. By way of illustration and notlimitation, RAM is available in many forms such as synchronous RAM(SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rateSDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), anddirect Rambus RAM (DRRAM).

Computer 1112 also includes removable/non-removable,volatile/non-volatile computer storage media. FIG. 11 illustrates, forexample a disk storage 1124. Disk storage 1124 includes, but is notlimited to, devices like a magnetic disk drive, floppy disk drive, tapedrive, Jaz drive, Zip drive, LS-100 drive, flash memory card, or memorystick. In addition, disk storage 1124 can include storage mediaseparately or in combination with other storage media including, but notlimited to, an optical disk drive such as a compact disk ROM device(CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RWDrive) or a digital versatile disk ROM drive (DVD-ROM). To facilitateconnection of the disk storage devices 1124 to the system bus 1118, aremovable or non-removable interface is typically used such as interface1126.

It is to be appreciated that FIG. 11 describes software that acts as anintermediary between users and the basic computer resources described insuitable operating environment 1110. Such software includes an operatingsystem 1128. Operating system 1128, which can be stored on disk storage1124, acts to control and allocate resources of the computer system1112. System applications 1130 take advantage of the management ofresources by operating system 1128 through program modules 1132 andprogram data 1134 stored either in system memory 1116 or on disk storage1124. It is to be appreciated that various components described hereincan be implemented with various operating systems or combinations ofoperating systems.

A user enters commands or information into the computer 1112 throughinput device(s) 1136. Input devices 1136 include, but are not limitedto, a pointing device such as a mouse, trackball, stylus, touch pad,keyboard, microphone, joystick, game pad, satellite dish, scanner, TVtuner card, digital camera, digital video camera, web camera, and thelike. These and other input devices connect to the processing unit 1114through the system bus 1118 via interface port(s) 1138. Interfaceport(s) 1138 include, for example, a serial port, a parallel port, agame port, and a universal serial bus (USB). Output device(s) 1140 usesome of the same type of ports as input device(s) 1136. Thus, forexample, a USB port may be used to provide input to computer 1112, andto output information from computer 1112 to an output device 1140.Output adapter 1142 is provided to illustrate that there are some outputdevices 1140 like monitors, speakers, and printers, among other outputdevices 1140, that require special adapters. The output adapters 1142include, by way of illustration and not limitation, video and soundcards that provide a means of connection between the output device 1140and the system bus 1118. It should be noted that other devices and/orsystems of devices provide both input and output capabilities such asremote computer(s) 1144.

Computer 1112 can operate in a networked environment using logicalconnections to one or more remote computers, such as remote computer(s)1144. The remote computer(s) 1144 can be a personal computer, a server,a router, a network PC, a workstation, a microprocessor based appliance,a peer device or other common network node and the like, and typicallyincludes many or all of the elements described relative to computer1112. For purposes of brevity, only a memory storage device 1146 isillustrated with remote computer(s) 1144. Remote computer(s) 1144 islogically connected to computer 1112 through a network interface 1148and then physically connected via communication connection 1150. Networkinterface 1148 encompasses communication networks such as local-areanetworks (LAN) and wide-area networks (WAN). LAN technologies includeFiber Distributed Data Interface (FDDI), Copper Distributed DataInterface (CDDI), Ethernet/IEEE 802.3, Token Ring/IEEE 802.5 and thelike. WAN technologies include, but are not limited to, point-to-pointlinks, circuit switching networks like Integrated Services DigitalNetworks (ISDN) and variations thereon, packet switching networks, andDigital Subscriber Lines (DSL).

Communication connection(s) 1150 refers to the hardware/softwareemployed to connect the network interface 1148 to the bus 1118. Whilecommunication connection 1150 is shown for illustrative clarity insidecomputer 1112, it can also be external to computer 1112. Thehardware/software necessary for connection to the network interface 1148includes, for exemplary purposes only, internal and externaltechnologies such as, modems including regular telephone grade modems,cable modems and DSL modems, ISDN adapters, and Ethernet cards.

FIG. 12 is a schematic block diagram of a sample-computing environment1200 that can be employed. The system 1200 includes one or moreclient(s) 1210. The client(s) 1210 can be hardware and/or software(e.g., threads, processes, computing devices). The system 1200 alsoincludes one or more server(s) 1230. The server(s) 1230 can also behardware and/or software (e.g., threads, processes, computing devices).The servers 1230 can house threads to perform transformations byemploying the components described herein, for example. One possiblecommunication between a client 1210 and a server 1230 may be in the formof a data packet adapted to be transmitted between two or more computerprocesses. The system 1200 includes a communication framework 1250 thatcan be employed to facilitate communications between the client(s) 1210and the server(s) 1230. The client(s) 1210 are operably connected to oneor more client data store(s) 1260 that can be employed to storeinformation local to the client(s) 1210. Similarly, the server(s) 1230are operably connected to one or more server data store(s) 1240 that canbe employed to store information local to the servers 1230.

What has been described above includes various exemplary aspects. It is,of course, not possible to describe every conceivable combination ofcomponents or methodologies for purposes of describing these aspects,but one of ordinary skill in the art may recognize that many furthercombinations and permutations are possible. Accordingly, the aspectsdescribed herein are intended to embrace all such alterations,modifications and variations that fall within the spirit and scope ofthe appended claims. Furthermore, to the extent that the term “includes”is used in either the detailed description or the claims, such term isintended to be inclusive in a manner similar to the term “comprising” as“comprising” is interpreted when employed as a transitional word in aclaim.

1-20. (canceled)
 21. A computer readable storage medium having storedthereon computer executable instructions that when executed on one ormore processors display a graphical user interface, comprising: adisplay object to present differentiator data for at least two dataitems having a plurality of attributes, wherein a first data item is afirst product and a second data item is a set of products based upon asingle model wherein each product has one or more attributes that isdifferent from the other products in the set, the differentiator data isbased upon a comparison of the first product to an aggregate of the setof products of the second data item, wherein aggregate involvesidentifying the lowest and highest value of each attribute in the set ofproducts and treating the lowest and highest value as a range for eachattribute for comparison with an associated attribute of the firstproduct; an input component to request the differentiator data; and acommunications component to interact with a component that determinesthe differentiator data.
 22. The computer readable storage medium ofclaim 21, further comprising a component to initiate a change event. 23.The computer readable storage medium of claim 22, further comprising acomponent to allow users to assign weights or determine aggregates fordata subsets.